package process;

/**
 * @author: CJJ
 * 2025/4/21
 * @description: 多进程和多线程间访问资源的保护
 */
public class Multithreading {
    /**
     * 多线程中的资源保护
     * 1.使用进程间通信(IPC)机制：
     *  信号量(Semaphore): 通过信号量实现进程对共享资源的互斥访问控制,确保同一时刻只有一个进程可以访问共享资源
     *  互斥锁：在共享内存中使用互斥锁来保护临界区域,只有成功获取锁的进程才能进入临界区域执行操作。
     *  条件变量：结合互斥锁使用,实现进程间的同步,确保在特定条件下才能访问或修改共享资源
     *
     *  2.使用文件锁
     *   如果共享资源是文件或文件区域,可以使用文件锁来确保同一时刻只有一个进程可以对文件进行读写操作。
     *
     * 3.共享内存管理
     *   通过分配合释放共享内存的方式,确保只有一个进程可以修改内存区域,或者使用特点的同步机制来协调多个进程对共享内存的访问
     *   多线程中的资源保护
     *    互斥锁：最常用的方法是使用互斥锁来保护临界区域,确保同一时刻只有一个线程可以进入临界区域执行操作。线程在进入临界区前必须先获取锁,并在退出
     *    时释放锁。
     *
     * 4.条件变量：
     *   用于在线程之间进行通信合同步,例如等待某个条件为真时才能继续执行,可以防止竞态条件的发生
     *  读写锁：
     *   如果多个线程需要读取共享资源,但很少修改它,可以使用读写锁来允许多个线程同时读取,但只有一个线程可以写入。
     *   原子操作：
     *    使用原子操作可以保证某些简单操作的原子性,如递增操作等,这样可以避免竞态条件的发生。
     */
}
